/**
 * @author Justin Akin
 * @version Action Pals Core Library 0.1.0
 */
package com.actionpals.base
{	
	import flash.display.Shape;
	import flash.utils.describeType;
	import flash.utils.getQualifiedClassName;
	import flash.utils.getQualifiedSuperclassName;
	
	/**
	 * 
	 */
	public class BaseShape extends Shape implements IBaseInterface, IBaseDisplayable
	{
		
	//--------------------------------------------------------------------------------
	//
	//	Private Member Variables
	//
	//--------------------------------------------------------------------------------
	
		/**
		 * @private
		 */
		private var _enabled:Boolean;
		
	//--------------------------------------------------------------------------------
	//
	//	Constructor
	//
	//--------------------------------------------------------------------------------
		
		/**
		 * Constructor
		 */
		public function BaseShape()
		{				
			super();
		}
		
	//--------------------------------------------------------------------------------
	//
	//	Public Methods
	//
	//--------------------------------------------------------------------------------
		
		public function resize( width:Number, height:Number ):void
		{
			this.width = width;
			this.height = height;
		}
		
		public function move( x:Number, y:Number ):void
		{
			this.x = x;
			this.y = y;	
		}
		
		public function scale( scaleX:Number, scaleY:Number ):void
		{
			this.scaleX = scaleX;
			this.scaleY = scaleY;
		}
		
	//--------------------------------------------------------------------------------
	//
	//	Getters and Setters
	//
	//--------------------------------------------------------------------------------
		
		/**
		 * A Boolean value that indicates whether a BaseSprite is enabled.
		 */
		public function get enabled():Boolean
		{
			return _enabled;
		}
		public function set enabled( value:Boolean ):void
		{
			_enabled = value;
		}
		
		/**
		 * Returns a fully qualifed class name of BaseClass or any subclass.
		 * @return String		Returns a fully qualifed class name of BaseClass or
		 * 						any subclass.
		 */
		public function get qualifiedClassName():String
		{
			return getQualifiedClassName( this );
		}
		
		/**
		 * Returns a fully qualifed class name of BaseClass or any subclass.
		 * @return A fully qualified class name.
		 */
		public function get qualifiedSuperclassName():String
		{
			return getQualifiedSuperclassName( this );
		}
		
		/**
		 * Returns a fully qualifed class name of BaseClass or any subclass.
		 * @return String A fully qualified class name.
		 */
		public function get typeDescription():XML
		{
			return describeType( this );
		}	
	}	
}